#region License, Terms and Conditions
//
// Prawks - Copyright (c) 2007 Atif Aziz. All rights reserved.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License as published by the Free
// Software Foundation; either version 2.1 of the License, or (at your option)
// any later version.
//
// This library is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
// details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this library; if not, write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
//
#endregion

namespace Configuration
{
    #region Imports

    using System.Configuration;
    using System.Xml;

    #endregion

    internal sealed class AssemblyRefsConfigHandler : IConfigurationSectionHandler
    {
        public object Create(object parent, object configContext, XmlNode section)
        {
            string[] references = new string[section.ChildNodes.Count];
            int referenceCount = 0;

            SectionReader reader = new SectionReader(section);

            while (reader.Read())
            {
                reader.ValidateElement("reference", false);
                references[referenceCount++] = reader.GetStringAttribute("assembly");
            }

            return references;
        }

        public static string[] GetConfig(string sectionName)
        {
            return (string[]) ConfigurationManager.GetSection(sectionName);
        }
    }
}
